package com.wms.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 物流价格实体类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("tb_logistics_price") // 对应数据库表名
public class LogisticsPrice {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO) // 若数据库自增，建议使用 IdType.AUTO
    private Integer id;

    /**
     * 每立方费用（单位：分）
     */
    @TableField("cube_price")
    private Integer cubePrice;

    /**
     * 每千克费用（单位：分）
     */
    @TableField("kilogram_price")
    private Integer kilogramPrice;

    /**
     * 每千米运输费用（单位：分）
     */
    @TableField("trans_kilometer_price")
    private Integer transKilometerPrice;

    /**
     * 类型: 1 同城, 2 同省, 3 跨省, 4 经济区互寄
     */
    @TableField("category")
    private Integer category;

    /**
     * 关联物流公司ID（外键，关联 tb_logistics_company.id）
     */
    @TableField("logistics_company_id")
    private Integer logisticsCompanyId;

    /**
     * SaaS标识
     */
    @TableField("saas_id")
    private String saasId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 创建人账号
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 修改时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 修改人账号
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 是否删除: 1 未删除, 2 已删除
     * 使用逻辑删除功能
     */
    @TableField("is_del")
    private Integer isDel;

    @TableField(exist = false)
    private String companyName;
}